libxl, xl: Account for shadow memory for PV guests too
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Tue, 23 Nov 2010 19:25:00 +0000 (19:25 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Tue, 23 Nov 2010 19:25:00 +0000 (19:25 +0000)
We need to account for the memory needed by shadow pagetables even for PV
guests, because in that case shadow pagetables are used during live
migration.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c
tools/libxl/xl_cmdimpl.c

index 2b93565ee5011e14cc5647612137205e979da568..33e5a2a95dbbdd0b802f4fa1c0e54e2cf3a07bb3 100644 (file)
@@ -3026,7 +3026,7 @@ int libxl_domain_need_memory(libxl_ctx *ctx, libxl_domain_build_info *b_info,
         if (strstr(dm_info->device_model, "stubdom-dm"))
             *need_memkb += 32 * 1024;
     } else
-        *need_memkb += LIBXL_PV_EXTRA_MEMORY;
+        *need_memkb += b_info->shadow_memkb + LIBXL_PV_EXTRA_MEMORY;
     if (*need_memkb % (2 * 1024))
         *need_memkb += (2 * 1024) - (*need_memkb % (2 * 1024));
     return 0;
index a1301d345d95ec0bb9f1c77460627094409bbff4..352a8db5993198b5ec1cb38f261509574896d21c 100644 (file)
@@ -332,8 +332,8 @@ static void init_build_info(libxl_domain_build_info *b_info, libxl_domain_create
     b_info->target_memkb = b_info->max_memkb;
     b_info->disable_migrate = 0;
     b_info->cpuid = NULL;
+    b_info->shadow_memkb = 0;
     if (c_info->hvm) {
-        b_info->shadow_memkb = 0; /* Set later */
         b_info->video_memkb = 8 * 1024;
         b_info->kernel.path = strdup("hvmloader");
         b_info->hvm = 1;